console.log('begin');
console.log('end');
setTimeout(() => {
  console.log('setTimeout1')
}, 0);
setTimeout(() => {
    console.log('setTimeout2')
  }, 1);
  //最后入栈的宏任务
new Promise((resolve) => {
  console.log('promise');
  resolve()
}).then(() => {
    console.log('then1');
  }).then(() => {
    console.log('then2');
  });
  setTimeout(() => {
    console.log('setTimeout3')
  }, 1);
console.log('end');